來架個網站吧
程式碼風格,是一件很抽象的事情。但是在團隊中風格一致,似乎很重要。
我鮮強調一次是,「似乎」。
一個網站只有一個工程師開發。程式碼風格不一致(應該)沒有關係。例如,縮排、命名規則不一致、包含與更動業務邏輯前的程式片段,如下列範例:
public class Main {
public static void main(String[] args) {
int user_input = 0;
//for(int i=1;i<=9;i++) {
// for(int j=1;j<=i;j++) {
// System.out.print(j+"×"+i+"="+i*j+"\t");
// }
// System.out.println();
// }
int Not_too_good = 60;
int OK = 80;
int good = 100;String showMsg = "";
if(user_input < Not_too_good){
showMsg = "Not too good";
}else if(user_input < OK){
showMsg = "Not bad";}else if(user_input < good){
showMsg = "OK";
}else{
showMsg = "Good";
}
System.out.println(showMsg);
}
}
上述程式碼確實可以執行,可是相信大家都閱讀得很痛苦吧?這也是我第一個專案接手的程式碼品質,裡頭中充趕專案時程、能跑就好的影子,後續如何出了什麼狀況以後再說。
下列是我整理過後的程式片段:
/*
* 判別分數工具
*/
public class Main {
public static void main(String[] args) {
int userInput = 0;
String showMsg = "";
final int NOT_TOO_GOOD = 60;
final int OK = 80;
final int GOOD = 100;
if(userInput < NOT_TOO_GOOD){
showMsg = "Not too good";
}else if(userInput < OK){
showMsg = "Not bad";}
else if(userInput < GOOD){
showMsg = "OK";
}else{
showMsg = "Good";
}
System.out.println(showMsg);
}
}
這樣的程式片段會比上述的狀況好閱讀的多了。
程式碼執行的結果最後還是由使用者進行操作、反饋。而程式開發人員其實也只是將各種的討論結果寫成程式碼而已。在我的職涯的前一兩年每天都會在不停的Codding,之後大部分的時間都在閱讀文件,如:需求設計文件、規格、技術文章。還有進行除錯、研究如何將新的技術導入專案中等等非寫程式碼的工作,大約一天只會有一到兩個小時執行Codding。
如果專案時程排的緊,其實很難回頭查看程式碼的品質。有時候是真的為了替老專案(十幾年的系統)導入新技術,花了好幾個夜晚趕出來,真的能跑且達到新需求要求就很不錯。
風格?品質?沒有多餘的精力、時間就只能先暫時擱置,畢竟只是為了養家餬口而已。所以一開始我說「程式碼風格似乎很重要」。
以這種角度來說,程式品質其實也是各方協調下來的結果。
為了解決時程緊迫這種困境,後來在報新的專案開發時程,我都會多估一到五天的開發人天做程式碼品質檢測,這樣如此一來就可以漸漸把程式品質提昇,同時系統問題也越來越少,因為好閱讀好維護。
以下是我對自己的品質要求: